// import java.io.BufferedReader;
// import java.io.InputStreamReader;
// import java.sql.*;
import java.time.LocalDate;
import java.time.LocalTime;
import jxl.*;
import com.itextpdf.*;

import FM2_15577.front_end.BankSystem;

public class test {
    public static void main(String[] args) throws Exception {
        BankSystem bs = new BankSystem();
        // System.out.println("hello");
        // System.out.println(bs.SHA256("Fei_mA$Bank"));
        // System.out.println(bs.SHA256("fEi$Ma&baNk"));
        // System.out.println(LocalTime.now().toNanoOfDay());
        // System.out.println(LocalDate.now().toEpochDay());
        // System.out.println((long)(9e9));
        // System.out.println((long)(1e9));
        // System.out.println((char)70);
        // bs.registerAccount("测试createy", "abcde", 320200930004L, 12345678901L, 'F', LocalDate.of(2000, 1, 1)); // passed
        // bs.registerAccount("测试API", "abcd", 320200930001L, 12345678901L, 'F', LocalDate.of(2000, 1, 1), 2023); // passed
        // bs.registerAccount("测试API2", "abcd", 320200930002L, 12345678901L, 'M', LocalDate.of(2001, 1, 1), 2023); // passed
        // bs.loginAccount(320200930002L, "abc"); // not exist
        // bs.loginAccount(6481826227L, "abc"); // wrong passwd
        // bs.getBalance(); // failed: no login
        // bs.loginAccount(6481826227L, "abcd"); // login successfully
        // bs.updateInfo("测试改名", "abcde", 12345678902L, 'M');
        // bs.getBalance(); // success
        // bs.deposit("1000.22");
        // // bs.deposit("-1000.22"); // equals withdraw
        // bs.getBalance(); // success
        // bs.withdraw("1000.22");
        // bs.withdraw("100000.22"); // failed
        // bs.getBalance(); // success
        // bs.transfer(5422831391L, "12000");
        // bs.getBalance(); // success
        // bs.transfer(5422831390L, "12000");
        // bs.getBalance(); // success
        // bs.transfer(9832549252L, "3000");
        // bs.getBalance(); // success
        // bs.loginAccount(9832549252L, "abcd"); // login successfully
        // bs.getBalance(); // success
        // bs.transfer(6481826227L, "3000");
        // bs.getBalance(); // success
        // bs.loginAccount(1234567890L, "abc"); // login failed: closed
        // bs.loginAccount(5422831390L, "abcde"); // login failed: closed
        // bs.removeAccount(6481826227L, "abcd");
        // bs.registerAccount("测试70+", "abcde", 320200930100L, 12345678901L, 'M', LocalDate.of(1952, 1, 1), 2023);
        // bs.loginAdminAccount("admin", "Admin@ava"); // wrong password
        // bs.loginAdminAccount("admin", "Admin@java"); // login admin successfully
        // bs.registerAdminAccount("admin", "admin2"); // name exists
        // bs.registerAdminAccount("admin2", "admin2"); // register successfully
        // BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // String line = null;
        // line = br.readLine();
        // JSONObject obj = new JSONObject();
        // obj.put("type", "dateTest");
        // LocalDate ld = LocalDate.now();
        // obj.put("date1", ld.toString());
        // System.out.println(ld.toString());
        // ld = ld.minusYears(18);
        // obj.put("date2", ld.toString());
        // System.out.println(ld.toString());
        // ld = LocalDate.now().minusYears(70);
        // obj.put("date3", ld.toString());
        // System.out.println(ld.toString());
        // ld = LocalDate.of(2002, 4, 22);
        // obj.put("date4", ld.toString());
        // System.out.println(ld.toString());

        // try {
        //     System.err.println(bs.checkAndConvertAid("4610415259"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAid("461041525"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAid("0610415259"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAid("-610415259"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAid("46104152a9"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }

        // try {
        //     System.err.println(bs.checkAndConvertName("测试名字长度等于10"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertName("测试名字长度不超过十"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertName("测试名字长度超过10!"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertName("1234567890"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertName("1234567890!"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }

        // try {
        //     System.err.println(bs.checkAndConvertCipher("123"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertCipher("abcd"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }

        // try {
        //     System.err.println(bs.checkAndConvertDob("12000-01-01"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertDob("200a-01-01"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertDob("2000-01-01"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertDob("2000-00-01"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertDob("2000-01-00"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertDob("2000-00-00"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertDob("2006-01-01"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertDob("1952-01-01"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }

        // try {
        //     System.err.println(bs.checkAndConvertAmount("2a.43"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("22.43.1"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("22.431"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("22.4312"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("2243a1"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("0xa42"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("01242"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("123345"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("123345.1"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("123345.12"));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }
        // try {
        //     System.err.println(bs.checkAndConvertAmount("123345."));
        // } catch (Exception e) {
        //     System.err.println(e.getMessage());
        // }

        bs.exportAccountInfo("/Users/bluesky007/Development/gits/WorkingArea/Java/hw2/fei-ma-bank");
    }
}
